/*
#ifndef  __GAME_H__
#define  __GAME_H__

 #include "lvgl/lvgl.h"
#include "lvgl/demos/lv_demos.h"
#include <unistd.h>
#include <pthread.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
    typedef struct node
    {
      int x;
      int y;
      int full;//棋子是否落下
      int type;//棋子类型
       lv_obj_t *img;     // 图片对象
      struct node *next;
      struct node *prev;
    }Node;
    typedef struct gnode
    {
        Node *first;	//	指向单链表的第一个结点
        Node *last;	//	指向单链表的最后一个结点
        int num;	//	步数
    }Gnode;
    //extern char buffer[50];
    extern int board_state[15][15]; 
    extern Gnode *global_list;
    extern lv_obj_t *info_label;
    extern int game_over;

  

Gnode *create_doublelist(void);
void add_chess(Gnode  *l,int x, int y,int full,int type, lv_obj_t *img);
void create_chessboard(lv_obj_t* parent);
void get_point_cb(lv_event_t *e);
void create_control_panel(lv_obj_t* parent);
char *checkwin();
void undo_btn_op(lv_event_t *e);
void restart_btn_op(lv_event_t *e);
void newgame_btn_op(lv_event_t *e);
void update_game_info();
void start(lv_event_t *e);
void gamestart(lv_obj_t* parent);


#endif
*/


#ifndef  __GAME_H__
#define  __GAME_H__

 #include "lvgl/lvgl.h"

#include <unistd.h>
#include <pthread.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
    typedef struct node
    {
      int x;
      int y;
      int full;//棋子是否落下
      int type;//棋子类型
       //lv_obj_t *img;     // 图片对象
      struct node *next;
      struct node *prev;
    }Node;
    typedef struct gnode
    {
        Node *first;	//	指向单链表的第一个结点
        Node *last;	//	指向单链表的最后一个结点
        int num;	//	步数
    }Gnode;
    //extern char buffer[50];
    extern int board_state[15][15]; 
    extern Gnode *global_list;
    extern lv_obj_t *info_label;
    extern int game_over;
Gnode *create_doublelist(void);
void add_chess(Gnode  *l,int x, int y,int full,int type);
void create_chessboard(lv_obj_t* parent);
void get_point_cb(lv_event_t *e);
void create_control_panel(lv_obj_t* parent);
char *checkwin();
void undo_btn_op(lv_event_t *e);
void restart_btn_op(lv_event_t *e);
void newgame_btn_op(lv_event_t *e);
void update_game_info();
void start(lv_event_t *e);
void gamestart(lv_obj_t* parent);
void draw_int(lv_obj_t* parent);
void display_point(int x, int y, lv_color_t color); 
void display_rectangle(int x0,int y0,int w,int h, lv_color_t color);
void display_circle(int x0,int y0,int r, lv_color_t color);
void draw_chessboard(lv_obj_t *canvas);
//void create_game_ui();
#endif